﻿#include <stdio.h>

//main49：strcmp比较和strncmp有效比较字符串函数
int main49(void)
{
	char arr1[] = "hel\0lo";//hello-->hello\0-->hel\nlo\0-->hello-->hel\0lo
	char arr2[] = "hel\0wo";//hello-->hel\nlo-->hel\noo-->hlelo-->hel\0wo
	//2.注意：strcmp比较的是两个字符串的有效长度，也就是说【\0】之前的字符串进行比较，之后的不比较；
	int value = strcmp(arr1, arr2);
	printf("1.输出字符串arr1和字符串arr2的比较结果：%d\n", value);//0-->0-->-1-->-1-->-1-->0

	int valueNcmp = strncmp(arr1, arr2, 3);
	printf("3.输出字符串arr1和arr2进行有限比较，只比较前三个字符长度的字符串结果：%d\n", valueNcmp);//-1-->0

	//6.注意：!0表示真，没有其他意思；有限比较，也是以有效字符长度【\0】为准。此时比较长度为4，但是【\0】之前
		//的有效字符就3个，所以还是在比较hel，后面的不比较，结果就是相同。
	if (!strncmp(arr1, arr2, 4))
	{
		printf("4.前4个字符的比较结果为0：相同！");//4.前4个字符的比较结果为0：相同！
	}
	else
	{
		printf("5.前4个字符的比较结果为-1：不相同！");
	}
	return 0;
}